package com.eastfair.imaster.service;

import com.eastfair.boot.service.SuperService;
import com.eastfair.imaster.dto.ProductPageQuery;
import com.eastfair.imaster.entity.Product;
import com.eastfair.core.base.R;
import com.eastfair.enums.AuditStateEnum;

import java.util.List;

/**
 * <p>
 * 业务接口
 * 产品表
 * </p>
 *
 * @author liuxiaobai
 * @date 2021-08-19
 */
public interface ProductService extends SuperService<Product> {

    /**
     * 产品批量发布到展会
     * @param ids 产品ID集合
     * @param exhibitionId 展会ID
     * @return 发布失败的产品名集合
     */
    R<List<String>> updateBatchPublish(List<Long> ids, Long exhibitionId);
    /**
     * 产品批量审核
     * @param ids 产品ID集合
     * @param auditState 审核状态
     * @param verifyContent 审核理由
     * @return true/false
     */
    R<Boolean> updateBatchAudit(List<Long> ids, AuditStateEnum auditState,String verifyContent);
    /**
     * 批量编辑产品（仅限可见范围、上架下架）
     * @param query ids、enabled、scope
     * @return
     */
    R<Boolean> updateBatch(ProductPageQuery query);
    /**
     * 根据主键ID批量查询产品
     * @param ids 产品ID集合
     * @return 产品list
     */
    List<Product> queryByIds(List<Long> ids);

}
